﻿using System;
using System.Collections.Generic;
using System.Diagnostics;

namespace Battle
{
    [Serializable]

    public class Ship
    {
        public Ship(int length)
        {
            Length = length;
        }

        public int Length { get; set; }
        public ShipOrientationEnum Orient { get; set; }
        public int X { get; set; }
        public int Y { get; set; }
        public int HitCount { get; set; }

// Перевірка чи потонув корабель 
        public bool Drowned
        {
            get
            {
                return HitCount == Length;
            }
        }

// Первірка чи знаходитсья корабель за заданими координатами
        public bool LocatedIn(int x, int y)
        {
            var rectangle = GetShipArea();
            return (x >= rectangle.X && x <= rectangle.Right && y >= rectangle.Y && y <= rectangle.Bottom);
        }

// Площина на якій знаходиться корабель
        public Rectangle GetShipArea()
        {
            var width = Orient == ShipOrientationEnum.Horizontal ? Length : 1;
            var height = Orient == ShipOrientationEnum.Vertical ? Length : 1;

            return new Rectangle(X, Y, width, height);
        }

// Перенесення корабля за заданими координатами
        public void MoveTo(int x, int y)
        {
            X = x;
            Y = y;
        }

// Зміна напрямку корабля
        public void Turn()
        {
            Orient = Orient == ShipOrientationEnum.Horizontal ? ShipOrientationEnum.Vertical : ShipOrientationEnum.Horizontal;
        }
    }
}